package middlewareWeb;

import java.util.Vector;

/**
 * Classe che implementa una Activity
 * @author myusy
 */
public class Activity {

    private Workflow wf;
    private WorkerNetwork sbn;
    private TQueueManagerProxy wkProxy;

    /**
     * Metodo costruttore dell'oggetto Activity
     */
    public Activity(){

    }
    /**
     * Metodo costruttore dell'oggetto Activity
     * @param w workflow di attività da eseguire
     * @param n insieme dei worker che possono eseguire i task
     * @param p proxy per domunicare con i worker
     */
    public Activity(Workflow w,WorkerNetwork n, TQueueManagerProxy p){
        wf=w;
        sbn=n;
        wkProxy=p;
    }
    /**
     * Metodo che restitutisce il workflow
     * @return il workflow di task
     */
    public Workflow getWf(){
        return wf;
    }
    /**
     * Metodo per settare il workflow
     * @param val oggetto workflow da assegnare
     */
    public void setWf(Workflow val){
        wf=val;
    }
    /**
     * Metodo che restitutisce la Workernetwork
     * @return l'oggetto WorkerNetwork
     */
    public WorkerNetwork getSbn(){
        return sbn;
    }
    /**
     * Metodo che setta la WorkerNetwork
     * @param val WorkerNetwork da assegnare
     */
    public void setSbn(WorkerNetwork val){
        sbn=val;
    }
    /**
     * Metodo che schedula i vari task
     *
     */
    public void scheduleActivity(){
        TQProxyFactory factory = new TQProxyFactory();
        TQueueManagerProxy proxy = factory.getProxy();
        TransactionMng tm = new TransactionMng();
        this.setWkProxy(proxy);

        Workflow wf = this.getWf();
        WorkerNetwork wn = this.getSbn();
        
        tm.transaction(wf, wn, proxy);

    }
    /**
     * Metodo che restitutisce il proxy
     * @return oggetto TQueueManagerProxy
     */
    public TQueueManagerProxy getWkProxy(){
        return this.wkProxy;
    }
    /**
     * Metodo per settare il proxy
     * @param val oggetto TQueueManagerProxy
     */
    public void setWkProxy(TQueueManagerProxy val){
        this.wkProxy = val;
    }

}
